package org.pidan.basic.designModel.factory.abstractFactory;

/**
 * {@code @description}: 抽象工厂模式是基于工厂方法模式的基础上进行的。在这种模式中，每一个工厂不再只负责一个产品的创建，而是负责一组产品的创建。抽象工厂模式将每个产品组都提取为一个接口，每个工厂都负责一个产品组。
 * 抽象工厂仅仅是在工厂方法模式下新增了一些接口，只是工厂方法模式的一个拓展，当抽象工厂只有一个产品体系的话就会退化成工厂模式，所以两者本质上没有太大的区别
 * {@code @author}: huangyuxin
 * {@code @date}: 2023-11-16
 */
public class Client {

    public static void main(String[] args) {

        TotalFactoryReally totalFactoryReally1 = new TotalFactoryReally();
        Abstract1 car1 = totalFactoryReally1.createCar();
        car1.run();

        TotalFactoryReally totalFactoryReally2 = new TotalFactoryReally();
        Abstract2 engine2 = totalFactoryReally2.createEngine();
        engine2.run();
    }
}
